// 业务实体记录
export interface BusinessEntityRecord {
  id?: string; //
  alias?: string; // 实体名称
  name?: string; // 实体编码
  dataSourceConfigId?: string; // 数据源Id
  mainTable?: string; // 主表名称
  sql?: string; // 自定义sql
  creator?: string; // 创建者
  createTime?: string; // 创建时间
  updater?: string; // 更新者
  updateTime?: string; // 更新时间
  deleted?: string; // 是否删除
}

// 业务实体属性记录
export interface BusinessEntityAttrRecord {
  id?: string; //
  entityId?: string; // 外键，用于关联entity的id
  jsonName?: string; // 字段名称，定义最后显示的json的key
  fieldName?: string; // 字段在sql中的名称
  comment?: string; // 字段的中文注释
  columnType?: string; // 字段类型
  creator?: string; // 创建者
  createTime?: string; // 创建时间
  updater?: string; // 更新者
  updateTime?: string; // 更新时间
  updateIp?: string; // 更新ip
  deleted?: string; // 是否删除
}

// 分页查询业务实体的参数
export interface BusinessEntityParams extends Partial<BusinessEntityRecord> {
  pageNo: number;
  pageSize: number;
  // Partial携带具体查询条件
}

// 业务实体列表值
export interface BusinessEntityListRes {
  list: BusinessEntityRecord[];
  total: number;
}

// 业务实体具体字段
export interface BusinessColumnRecord {
  id?: string; //
  columnType?: string; // Json类型
  comment?: string; // 备注
  tableName?: string; // 所属表名
  fieldName?: string; // 数据库字段列名
  jsonName?: string; // Json属性
}

// 新增业务实体的参数
export interface BusinessEntityAddParams extends Partial<BusinessEntityRecord> {
  attrList: BusinessColumnRecord[]; // 实体对象属性
  tableList: MasterChildTableAssociationRecord[]; // 主子表关联关系
}

// 业务实体与SQL对应关系记录
export interface SQLRelevanceEntityRecord {
  id?: string; //
  selectName?: string; // 查询sql命名
  entityId?: string; // 对应实体的id
  defineSql?: string; // 用于执行的sql
  remark?: string; // 备注
  creator?: string; // 创建者
  createTime?: string; // 创建时间
  updater?: string; // 更新者
  updateTime?: string; // 更新时间
  updateIp?: string; // 更新ip
  deleted?: string; // 是否删除
}

// 主子表关联关系记录
export interface MasterChildTableAssociationRecord {
  id?: string; //
  joinTable?: string; // 主表名
  joinKey?: string; // 主表关联字段
  curTable?: string; // 子表名
  curKey?: string; // 子表关联字段
}
